package com.aiwhose.aiwhosecore.bean.security;

import com.aiwhose.aiwhosecore.bean.BaseEntity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;

import com.mybatisflex.core.keygen.KeyGenerators;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.EqualsAndHashCode;
import java.io.Serial;

/**
 * 用户表 实体类。
 *
 * @author 田国刚
 * @since 1.0.1
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Schema(description = "用户表")
@Table(value = "user")
public class User extends BaseEntity implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Id(keyType = KeyType.Generator, value = KeyGenerators.snowFlakeId)
    @Schema(description = "")
    private String id;

    /**
     * 手机号
     */
    @Schema(description = "手机号")
    private String phone;

    /**
     * 密码
     */
    @Schema(description = "密码")
    private String password;

    /**
     * openID
     */
    @Schema(description = "openID")
    private String wxOpenId;

    /**
     * 唯一 ID
     */
    @Schema(description = "唯一 ID")
    private String unionid;

    /**
     * 系统类别
     */
    @Schema(description = "系统类别")
    private String systemType;

    /**
     * 人脸库
     */
    @Schema(description = "人脸库")
    private String faceId;

    /**
     * 盐值
     */
    @Schema(description = "盐值")
    private String salt;

    /**
     * 姓名
     */
    @Schema(description = "姓名")
    private String name;

    /**
     * 性别
     */
    @Schema(description = "性别")
    private String sex;

    /**
     * 头像
     */
    @Schema(description = "头像")
    private String img;

    /**
     * 昵称
     */
    @Schema(description = "昵称")
    private String nickName;

    /**
     * 状态 0 启用
     */
    @Schema(description = "状态 0 启用")
    private Integer state;

    /**
     * 邮箱
     */
    @Schema(description = "邮箱")
    private String email;

    @Column(ignore = true)
    private String smsCode;
    @Column(ignore = true)
    private String imgCode;




}
